Computer virtualization relates to the creation of a virtualized version of a generally physical device, such as a server, a storage device, a central processing unit (CPU), a graphics processing unit (GPU), or other computing resources. A virtual machine (VM) is an emulation of a computer system and can be customized to include, for example, a predefined amount of random access memory (RAM), a predefined amount of hard drive storage space, an operating system, as well as other computing resources. Virtual machines resemble physical computer architectures and provide functionality of a physical computer. Virtual machines can be executed remotely traditionally in a data center, for example, to provide remote desktop computer sessions for employees of an enterprise. Thus, virtual machines can further utilize graphics processing resources of a data center to provide remote desktop computer sessions and other virtualized computer applications. Virtualization of various aspects of physical devices in a data center can ensure redundancy and provide an efficient distribution of computing resources.
NVIDIA® GRID is an advanced technology for sharing virtual GPUs (vGPUs) across multiple virtual desktop and application instances. Virtual machines can be assigned to respective vGPUs to perform graphics processing, for instance, to provide virtualized computer applications to an end user. To do so, an administrator can specify a profile for a virtual machine that causes the virtual machine to be assigned to a host having a corresponding type of NVIDIA® graphics card. An administrator of an enterprise can assign a desired amount of graphics processing resources by creating a customized graphics profile for each employee of the enterprise. Each virtual desktop executing in a data center can have dedicated graphics memory. In some situations, NVIDIA® GRID™ permits up to sixteen users to share a single physical GPU in a data center. However, assignment of graphics profiles to physical GPUs remains problematic as does migrating a virtual machine from a host having one type of graphics card to another.